// 从特定于 React 的入口点导入 RTK Query 方法
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
// 所有请求模块导入
import allEndpoints from "@/api/allEndpoints"
// 请求配置
const baseQuery = fetchBaseQuery({
    baseUrl: '/api', prepareHeaders: (headers, { getState }) => {
        console.log(getState());
        console.log(headers);
        headers.set('Cookie', `Bearer 11`)
        return headers;
    },
    timeout: 10000,
});
// 自定义拦截器
const baseQueryInterceptor = async (args, api, extraOptions) => {
    let result = await baseQuery(args, api, extraOptions);
    //   if (result.error) {
    //     if (result.error.status === 401 || result.error.status === 402) {
    //       // 处理401或402错误
    //       if (result.error.status === 401) {
    //         // 例如：注销用户，重定向到登录页面
    //         api.dispatch(logout());
    //         // 重定向到登录页面
    //         window.location.href = '/login';
    //       } else if (result.error.status === 402) {
    //         // 例如：显示支付错误信息
    //         api.dispatch(showError('Payment required. Please update your billing information.'));
    //       }
    //     }
    //   }
    return result;
};

// 定义我们的单个 API Slice 对象
export const apiSlice = createApi({
    // 缓存减速器预计将添加到 `state.api` （已经默认 - 这是可选的）
    reducerPath: 'api',
    // 配置请求
    baseQuery: baseQueryInterceptor,
    // “endpoints” 代表对该服务器的操作和请求
    endpoints: builder => allEndpoints(builder)
})
console.log(apiSlice);
// 导出自动生成的hooks
export default apiSlice